共计 1251 个字符,预计需要花费 4 分钟才能阅读完成。
判断容器是否存在,并完成删除。主要是容器不存在的时候,删除语句不能导致构建失败。
name: Docker Image CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ "main" ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ secrets.DOCKER_REGISTRY }} | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
push: true | |
tags: ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }}:latest | |
- name: executing remote ssh commands using ssh key | |
uses: appleboy/ssh-action@v1.0.0 | |
env: | |
INPUT_DOCKER_CONTAINER_NAME: ${{ vars.DOCKER_CONTAINER_NAME }} | |
with: | |
host: ${{ secrets.SSH_HOST }} | |
username: ${{ secrets.SSH_USERNAME }} | |
key: ${{ secrets.SSH_KEY }} | |
port: ${{ secrets.SSH_PORT }} | |
allenvs: true | |
script: | | |
docker pull ${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }} | |
if [ "$(docker ps -aq -f name=${INPUT_DOCKER_CONTAINER_NAME})" ]; then | |
docker rm -f ${INPUT_DOCKER_CONTAINER_NAME} | |
fi | |
docker run -dit --name ${INPUT_DOCKER_CONTAINER_NAME} \ | |
--network zxyh \ | |
-v /home/zxyh/applog/openapi/:/data/log \ | |
-p 33000:6000 --restart always \ | |
--env-file /home/zxyh/tcpush/prod.env \ | |
-e APP_INSTANCE=Open \ | |
${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_HUB_SPACE }}/${{ vars.DOCKER_IMAGE_NAME }} |
正文完